home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / hack / 3_1_3 / sys / msdos / makegcc.src < prev    next >
Encoding:
Text File  |  1993-07-07  |  11.2 KB  |  375 lines

  1. #    SCCS Id: @(#)MakeGCC.src       3.1     93/04/07
  2. #    Copyright (c) NetHack PC Development Team 1992, 1993.
  3. #    PC NetHack 3.1 src Makefile for djgpp 1.10 and ndmake 4.5
  4. #
  5. #    For questions read the Install.dos file included with
  6. #    the distribution.
  7. #
  8. #    Kevin D Smolkowski, Kevins@ori.org
  9.  
  10. CC       = gcc
  11. STUB     = go32.exe         # Can be either stub.exe or go32.exe
  12. STUBPATH = p:\djgpp\bin\    # Must be complete path with trailing '\'
  13. LINK     = gcc
  14.  
  15. #    Set the gamedir according to your preference.  It must be present prior
  16. #    to compilation.
  17.  
  18. GAME    = nethack                 # Game Name
  19. GAMEDIR = c:\games\nethack        # Game directory
  20.  
  21. #    Compilation Flags.
  22.  
  23. #    Debugging
  24. #CFLAGS = -pg -c -I../include
  25. #LFLAGS = -pg
  26.  
  27. #    Normal 
  28. CFLAGS = -c -O -I../include
  29. LFLAGS =
  30.  
  31. #    Special libraries
  32. LIBS = -lpc
  33.  
  34. #    Source directories.    Makedefs hardcodes these, don't change them.
  35. INCL = ..\include   # NetHack include files
  36. DAT  = ..\dat       # NetHack data files
  37. DOC  = ..\doc       # NetHack documentation files
  38. UTIL = ..\util      # Utility source
  39. SRC  = ..\src       # Main source
  40. SYS  = ..\sys\share # Shared system files
  41. MSYS = ..\sys\msdos # Msdos specific files
  42. WIN  = ..\win\tty   # Character terminal files
  43. GAMEFILE = $(GAMEDIR)\$(GAME).exe # whole thing
  44.  
  45. #    The default make target (so just typing 'make' is useful).
  46. default : $(GAMEFILE)
  47.  
  48. #    If TERMLIB is defined in pcconf.h, comment out the upper line and
  49. #    uncomment the lower.  Note that you must build the termc library
  50. #    and place it in djgpp's lib directory.  See termcap.zip for details
  51.  
  52. TERMLIB =
  53. #TERMLIB = -ltermc
  54.  
  55. LIBRARIES = $(LIBS) $(TERMLIB)
  56.  
  57. #  Nothing below this line should have to be changed.
  58. #
  59. #  Other things that have to be reconfigured are in
  60. #       config.h, pcconf.h and possibly system.h.
  61. #
  62.  
  63. #       This line should not be deleted.
  64.  
  65. #  Make Rules.
  66.  
  67. .SUFFIXES:  .exe .o .c .y .l
  68.  
  69. .c.o:
  70.         $(CC) $(CFLAGS) -o$*.o $*.c
  71.  
  72. #  Object files for the game itself.
  73.  
  74. VOBJ01 = allmain.o  alloc.o    apply.o    artifact.o attrib.o
  75. VOBJ02 = ball.o     bones.o    botl.o     cmd.o      dbridge.o
  76. VOBJ03 = decl.o     detect.o   display.o  do.o       do_name.o
  77. VOBJ04 = do_wear.o  dog.o      dogmove.o  dokick.o   dothrow.o
  78. VOBJ05 = drawing.o  dungeon.o  eat.o      end.o      engrave.o
  79. VOBJ06 = exper.o    explode.o  extralev.o files.o    fountain.o
  80. VOBJ07 = getline.o  hack.o     hacklib.o  invent.o   lock.o
  81. VOBJ08 = mail.o     main.o     makemon.o  mcastu.o   mhitm.o
  82. VOBJ09 = mhitu.o    minion.o   mkmap.o    mklev.o    mkmaze.o
  83. VOBJ10 = mkobj.o    mkroom.o   mon.o      mondata.o  monmove.o
  84. VOBJ11 = monst.o    monstr.o   mplayer.o  mthrowu.o  muse.o
  85. VOBJ12 = music.o    o_init.o   objects.o  objnam.o   options.o
  86. VOBJ13 = pickup.o   pline.o    polyself.o potion.o   quest.o
  87. VOBJ14 = questpgr.o pager.o    pray.o     priest.o   read.o
  88. VOBJ15 = rect.o     restore.o  rip.o      rnd.o      rumors.o
  89. VOBJ16 = save.o     shk.o      shknam.o   sit.o      sounds.o
  90. VOBJ17 = sp_lev.o   spell.o    steal.o    termcap.o  timeout.o
  91. VOBJ18 = topl.o     topten.o   track.o    trap.o     u_init.o
  92. VOBJ19 = uhitm.o    vault.o    vision.o   vis_tab.o  weapon.o
  93. VOBJ20 = were.o     wield.o    windows.o  wintty.o   wizard.o
  94. VOBJ21 = worm.o     worn.o     write.o    zap.o
  95.  
  96. SOBJ    = msdos.o    sys.o      tty.o      unix.o    video.o
  97.  
  98. VVOBJ  = version.o
  99.  
  100. VOBJ   = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \
  101.          $(VOBJ06) $(VOBJ07) $(VOBJ08) $(VOBJ09) $(VOBJ10) \
  102.          $(VOBJ11) $(VOBJ12) $(VOBJ13) $(VOBJ14) $(VOBJ15) \
  103.          $(VOBJ16) $(VOBJ17) $(VOBJ18) $(VOBJ19) $(VOBJ20) \
  104.          $(VOBJ21)
  105.  
  106. ALLOBJ = $(VOBJ) $(VVOBJ) $(SOBJ)
  107.  
  108. RM_H      = $(INCL)\rm.h  $(INCL)\align.h
  109. DISPLAY_H = $(INCL)\display.h  $(INCL)\vision.h $(INCL)\mondata.h
  110. DECL_H    = $(INCL)\decl.h $(INCL)\quest.h $(INCL)\spell.h \
  111.             $(INCL)\color.h $(INCL)\obj.h $(INCL)\you.h \
  112.             $(INCL)\onames.h $(INCL)\pm.h
  113. ESHK_H    = $(INCL)\eshk.h  $(INCL)\dungeon.h
  114. PCCONF_H  = $(INCL)\pcconf.h  $(INCL)\micro.h $(INCL)\system.h
  115. DUNGEON_H = $(INCL)\dungeon.h  $(INCL)\align.h
  116. EPRI_H    = $(DUNGEON_H)  $(INCL)\epri.h
  117. EMIN_H    = $(DUNGEON_H)  $(INCL)\emin.h
  118. PERM_H    = $(INCL)\permonst.h $(INCL)\monattk.h $(INCL)\monflag.h \
  119.             $(INCL)\align.h
  120. CONFIG_H  = $(INCL)\config.h $(INCL)\tradstdc.h $(INCL)\global.h \
  121.             $(PCCONF_H)
  122. HACK_H    = $(INCL)\hack.h $(CONFIG_H) $(DUNGEON_H) $(DECL_H)    \
  123.             $(DISPLAY_H) $(RM_H) $(INCL)\monsym.h                \
  124.             $(INCL)\mkroom.h $(INCL)\objclass.h $(INCL)\trap.h   \
  125.             $(INCL)\flag.h  $(INCL)\vision.h $(INCL)\display.h   \
  126.             $(INCL)\wintype.h $(INCL)\engrave.h $(INCL)\rect.h   \
  127.             $(INCL)\winprocs.h $(INCL)\wintty.h
  128.  
  129.  
  130. #  The default target.
  131.  
  132. all :  $(GAMEFILE) install.tag
  133.        @echo Done.
  134.  
  135. install: install.tag
  136.  
  137. install.tag:    $(GAMEFILE) $(DAT)\sp_lev.tag
  138.     copy $(SYS)\termcap       $(GAMEDIR)
  139.     copy $(DAT)\*.?           $(GAMEDIR)
  140.     copy $(DAT)\*.dat         $(GAMEDIR)
  141.     copy $(DAT)\*.lev         $(GAMEDIR)
  142.     copy $(SYS)\NetHack.cnf   $(GAMEDIR)
  143.     copy $(UTIL)\recover.exe  $(GAMEDIR)
  144.     copy $(MSYS)\msdos.hlp    $(GAMEDIR)
  145.     del   $(GAMEDIR)\makefile
  146.     echo install done > install.tag
  147.  
  148. #
  149. #  The main target.
  150. #
  151. $(GAMEFILE) : $(GAME).res  $(UTIL)\utility.tag
  152.     $(CC) $(LFLAGS) @$(GAME).res $(LIBRARIES)
  153.     copy /b $(STUBPATH)$(STUB) + a.out $(GAMEFILE)
  154.     del a.out
  155.  
  156. $(GAME).res : $(ALLOBJ)
  157.     @echo $(VOBJ01) > $@
  158.     @echo $(VOBJ02) >> $@
  159.     @echo $(VOBJ03) >> $@
  160.     @echo $(VOBJ04) >> $@
  161.     @echo $(VOBJ05) >> $@
  162.     @echo $(VOBJ06) >> $@
  163.     @echo $(VOBJ07) >> $@
  164.     @echo $(VOBJ08) >> $@
  165.     @echo $(VOBJ09) >> $@
  166.     @echo $(VOBJ10) >> $@
  167.     @echo $(VOBJ11) >> $@
  168.     @echo $(VOBJ12) >> $@
  169.     @echo $(VOBJ13) >> $@
  170.     @echo $(VOBJ14) >> $@
  171.     @echo $(VOBJ15) >> $@
  172.     @echo $(VOBJ16) >> $@
  173.     @echo $(VOBJ17) >> $@
  174.     @echo $(VOBJ18) >> $@
  175.     @echo $(VOBJ19) >> $@
  176.     @echo $(VOBJ20) >> $@
  177.     @echo $(VOBJ21) >> $@
  178.     @echo $(SOBJ)   >> $@
  179.     @echo $(VVOBJ)  >> $@
  180.  
  181. #  The following include files depend on makedefs to be created.
  182. #
  183. #  date.h should be remade every time any of the source or include
  184. #  files is modified.
  185.  
  186.  
  187. $(INCL)\date.h : $(VOBJ)
  188.     $(UTIL)\makedefs -v
  189.  
  190. $(INCL)\onames.h :
  191.     $(UTIL)\makedefs -o
  192.  
  193. $(INCL)\pm.h :
  194.     $(UTIL)\makedefs -p
  195.  
  196. $(INCL)\trap.h :
  197.     $(UTIL)\makedefs -t
  198.  
  199.  
  200.  
  201. #
  202. #  Housekeeping.
  203. #
  204.  
  205. clean :
  206.     -del *.o
  207.  
  208. spotless : clean
  209.     -del $(INCL)\date.h
  210.     -del $(INCL)\onames.h
  211.     -del $(INCL)\pm.h
  212.     -del $(INCL)\vis_tab.h
  213.     -del vis_tab.c
  214.     -del $(UTIL)\makedefs.exe
  215.     -del $(UTIL)\lev_comp.exe
  216.     -del $(UTIL)\dgn_comp.exe
  217.     -del $(UTIL)\*.res
  218.     -del $(UTIL)\*.def
  219.     -del $(UTIL)\*.map
  220.     -del $(DAT)\data
  221.     -del $(DAT)\rumors
  222.  
  223. # dependencies
  224. # some files require movement as Ndmake doesn't like unix style '/'
  225. # directory specs and djgcc doesn't like dos style directory specs.
  226. # So we get to copy stuff where we might need it.   Fun eh?
  227.  
  228. # sys\share
  229. main.o:  $(HACK_H) $(SYS)\pcmain.c
  230.     copy $(SYS)\pcmain.c .
  231.     $(CC) $(CFLAGS) -omain.o pcmain.c
  232.  
  233. tty.o:   $(HACK_H) $(INCL)\wintty.h $(SYS)\pctty.c
  234.     copy $(SYS)\pctty.c .
  235.     $(CC) $(CFLAGS) -otty.o  pctty.c
  236.  
  237. unix.o:  $(HACK_H) $(SYS)\pcunix.c
  238.     copy $(SYS)\pcunix.c .
  239.     $(CC) $(CFLAGS) -ounix.o pcunix.c
  240.  
  241. sys.o : $(HACK_H) $(SYS)\pcsys.c
  242.     copy $(SYS)\pcsys.c .
  243.     $(CC) $(CFLAGS) -o$*.o pcsys.c
  244.  
  245. # sys\msdos
  246. msdos.o : $(HACK_H)  $(MSYS)\msdos.c
  247.     copy $(MSYS)\msdos.c .
  248.     $(CC) $(CFLAGS) -o$*.o $*.c
  249.  
  250. video.o : $(HACK_H)  $(MSYS)\video.c
  251.     copy $(MSYS)\video.c .
  252.     $(CC) $(CFLAGS) -o$*.o $*.c
  253.  
  254. # win/tty
  255. getline.o : $(HACK_H) $(INCL)\wintty.h $(WIN)\getline.c
  256.     copy $(WIN)\getline.c .
  257.     $(CC) $(CFLAGS) -o$*.o $*.c
  258.  
  259. termcap.o : $(CONFIG_H) $(WIN)\termcap.c
  260.     copy $(WIN)\termcap.c .
  261.     $(CC) $(CFLAGS) -o$*.o $*.c
  262.  
  263. topl.o : $(CONFIG_H) $(WIN)\topl.c
  264.     copy $(WIN)\topl.c .
  265.     $(CC) $(CFLAGS) -o$*.o $*.c
  266.  
  267. wintty.o : $(CONFIG_H) $(WIN)\wintty.c
  268.     copy $(WIN)\wintty.c .
  269.     $(CC) $(CFLAGS) -o$*.o $*.c
  270.  
  271. # src dependencies
  272. allmain.o:  $(HACK_H)
  273. alloc.o:    $(CONFIG_H)
  274. apply.o:    $(HACK_H) $(INCL)\edog.h
  275. artifact.o: $(HACK_H) $(INCL)\artifact.h $(INCL)\artilist.h
  276. attrib.o:   $(HACK_H) $(INCL)\artifact.h
  277. ball.o:     $(HACK_H)
  278. bones.o:    $(HACK_H) $(INCL)\lev.h
  279. botl.o:     $(HACK_H)
  280. cmd.o:      $(HACK_H) $(INCL)\func_tab.h
  281. dbridge.o:  $(HACK_H)
  282. decl.o:     $(HACK_H) $(INCL)\quest.h
  283. detect.o:   $(HACK_H) $(INCL)\artifact.h
  284. display.o:  $(HACK_H)
  285. do.o:       $(HACK_H) $(INCL)\lev.h
  286. do_name.o:  $(HACK_H)
  287. do_wear.o:  $(HACK_H)
  288. dog.o:      $(HACK_H) $(INCL)\edog.h
  289. dogmove.o:  $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
  290. dokick.o:   $(HACK_H) $(ESHK_H)
  291. dothrow.o:  $(HACK_H)
  292. drawing.o:  $(HACK_H) $(INCL)\termcap.h
  293. dungeon.o:  $(HACK_H) $(INCL)\dgn_file.h
  294. eat.o:      $(HACK_H)
  295. end.o:      $(HACK_H) $(ESHK_H)
  296. engrave.o:  $(HACK_H) $(INCL)\lev.h
  297. exper.o:    $(HACK_H)
  298. explode.o:  $(HACK_H)
  299. extralev.o:  $(HACK_H)
  300. files.o:     $(HACK_H)
  301. fountain.o:  $(HACK_H)
  302. hack.o:      $(HACK_H)
  303. hacklib.o:   $(HACK_H)
  304. invent.o:    $(HACK_H) $(INCL)\artifact.h
  305. lock.o:      $(HACK_H)
  306. mail.o:      $(HACK_H) $(INCL)\mail.h
  307. makemon.o:   $(HACK_H) $(EPRI_H) $(EMIN_H)
  308. mcastu.o:    $(HACK_H)
  309. mhitm.o:     $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
  310. mhitu.o:     $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h
  311. minion.o:    $(HACK_H) $(EMIN_H) $(EPRI_H)
  312. mklev.o:     $(HACK_H)
  313. mkmap.o:     $(HACK_H) $(INCL)\sp_lev.h
  314. mkmaze.o:    $(HACK_H) $(INCL)\sp_lev.h
  315. mkobj.o:     $(HACK_H) $(INCL)\artifact.h $(INCL)\prop.h
  316. mkroom.o:    $(HACK_H)
  317. mon.o:       $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h
  318. mondata.o:   $(HACK_H) $(ESHK_H) $(EPRI_H)
  319. monmove.o:   $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h
  320. monst.o:     $(CONFIG_H) $(PERM_H) $(ESHK_H) $(EPRI_H) \
  321.              $(INCL)\color.h $(INCL)\monsym.h $(INCL)\vault.h
  322. mplayer.o:   $(HACK_H)
  323. mthrowu.o:   $(HACK_H)
  324. muse.o:      $(HACK_H)
  325. music.o:     $(HACK_H)
  326. o_init.o:    $(HACK_H)
  327. objects.o:   $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h \
  328.              $(INCL)\prop.h $(INCL)\color.h
  329. objnam.o:    $(HACK_H)
  330. options.o:   $(CONFIG_H) $(HACK_H) $(INCL)\objclass.h $(INCL)\flag.h \
  331.              $(INCL)\termcap.h
  332. pager.o:     $(HACK_H)
  333. pickup.o:    $(HACK_H)
  334. pline.o:     $(HACK_H) $(EPRI_H)
  335. polyself.o:  $(HACK_H)
  336. potion.o:    $(HACK_H)
  337. pray.o:      $(HACK_H) $(EPRI_H)
  338. priest.o:    $(HACK_H) $(INCL)\mfndpos.h $(ESHK_H) $(EPRI_H) $(EMIN_H)
  339. quest.o:     $(HACK_H) $(INCL)\quest.h $(INCL)\qtext.h
  340. questpgr.o:  $(HACK_H) $(INCL)\qtext.h
  341. read.o:      $(HACK_H)
  342. rect.o:      $(HACK_H)
  343. restore.o:   $(HACK_H) $(INCL)\lev.h $(INCL)\termcap.h $(INCL)\quest.h
  344. rip.o:       $(HACK_H)
  345. rnd.o:       $(HACK_H)
  346. rumors.o:    $(HACK_H)
  347. save.o:      $(HACK_H) $(INCL)\lev.h $(INCL)\quest.h
  348. shk.o:       $(HACK_H) $(ESHK_H)
  349. shknam.o:    $(HACK_H) $(ESHK_H)
  350. sit.o:       $(HACK_H) $(INCL)\artifact.h
  351. sounds.o:    $(HACK_H) $(INCL)\edog.h
  352. sp_lev.o:    $(HACK_H) $(INCL)\sp_lev.h $(INCL)\align.h $(INCL)\rect.h
  353. spell.o:     $(HACK_H)
  354. steal.o:     $(HACK_H)
  355. timeout.o:   $(HACK_H)
  356. topten.o:    $(HACK_H)
  357. track.o:     $(HACK_H)
  358. trap.o:      $(HACK_H)
  359. u_init.o:    $(HACK_H)
  360. uhitm.o:     $(HACK_H)
  361. vault.o:     $(HACK_H) $(INCL)\vault.h
  362. version.o:   $(HACK_H) $(INCL)\date.h  $(INCL)\patchlev.h
  363. vision.o:    $(HACK_H) $(INCL)\vis_tab.h
  364. weapon.o:    $(HACK_H)
  365. were.o:      $(HACK_H)
  366. wield.o:     $(HACK_H)
  367. windows.o:   $(HACK_H) $(INCL)\wintty.h
  368. wizard.o:    $(HACK_H) $(INCL)\qtext.h
  369. worm.o:      $(HACK_H) $(INCL)\lev.h
  370. worn.o:      $(HACK_H)
  371. write.o:     $(HACK_H)
  372. zap.o:       $(HACK_H)
  373.  
  374. # end of file
  375.